Skip to content

Instantly share code, notes, and snippets.

View hotpaw2's full-sized avatar

Ronald Nicholson hotpaw2

View GitHub Profile
@hotpaw2
hotpaw2 / hl2.emulator.c
Last active February 21, 2024 12:11
Hermes Lite 2 Emulator
// Hermes Lite 2 Basic Metis Protocol 1 Operation Emulator
// emulates Discovery and a 1 slice receiver (for IQ data from a file)
// uses UDP port 1024
//
// cc fhl2e.c -lpthread -lm -o fhl2
//
// ( "usage -n -f0 -g -sr -iq \n" )
// for add noise, add tone frequency & gain, set sample rate, IQ filename
#define FHL2EVERSION ("1.0.102") // 2024-02-05 rhn@hotpaw.com
//
// Example of Using AVAudioPlayer
// to play a buffer of (synthesized) audio samples from memory
// by converting a [Float] buffer into an in-memory WAV file
//
// Copyright © 2019 Ronald H Nicholson Jr. All rights reserved.
// (re)Distribution permitted under the 3-clause New BSD license.
//
import Foundation
@hotpaw2
hotpaw2 / udp_receive.swift
Last active February 24, 2018 18:38 — forked from NeoTeo/UDPSendReceive.swift
A minimal implementation of a Posix UDP server in Swift.
//
// receive packets via UPD in Swift
// Original: https://gist.github.com/NeoTeo/b6195efb779d925fd7b8
// server only converted to Swift 4 2018-02-24 by rhn@nicholson.com
//
// swiftc udp_receive.swift -o udp_receive
//
import Foundation
rem Some tutorial DSP subroutines for Chipmunk Basic
rem
rem genstab() Generates a sine table for use by the fft() subroutine
rem fft() Implementation of a common in-place DIT FFT algorithm
rem *** genstab(m) - a subroutine to generate sine table of length 2^m ***
rem *** must be called before calling fft() for
rem the first time, and if the length 2^m changes
sub genstab(m)
100 rem SensorTag button press counter
102 rem This program will connect to and count TI SensorTag button presses.
104 rem It can count even in the background or with the iPhone display off.
106 rem Select a Sensor in the List and wait for connection success.
108 rem Tap the display to exit.
110 rem for HotPaw Basic 1.7.7 , rhn@hotpaw.com , 2017-12-08
112 rem
120 fn btle.init()
125 print "Initializing BLE ..."
130 fn sleep(5)
100 rem BLE peripheral button service emulation
102 rem for HotPaw Basic 1.7.7 , 2017-12 , by rhn@nicholson.com
104 rem Provides the same button service as a TI SensorTag
106 rem Tap on the iPhone display to send a BLE notification
108 rem Enter any character to exit
110 rem
120 fn btle.init()
130 print "Initializing ..."
140 fn sleep(1) : fn sleep(1)
160 fn btle.name(1,"HotPaw Button Test")
@hotpaw2
hotpaw2 / nsurl.dtask.test1.swift
Created May 6, 2017 22:07
test of command-line Swift for an NSURLSession dataTask
//
// command-line Swift test of an NSURLSession dataTask
// 2017-May-06 rhn@nicholson.com (hotpaw)
//
// compile and run using:
//
// swiftc nsurl.dtask.test1.swift -o mytest1
// ./mytest1
//
//
// MyMetalWaterfall.swift
// version 0.1.105 (updated for Swift 5)
//
// Demonstrates using a MetalKit compute shader to render a live waterfall RGB bitmap
// into a UIView
//
// This is a single file iOS app
//
// It includes AppDelegate for a minimal demonstration app
// MyURLStreamTask.swift
// Demonstrates using an NSURLSessionStreamTask to implement a bidirectional TCP socket connection
//
// by rhn@nicholson.com 2017-03-07
// distribution: BSD 2-clause
//
import Foundation
class MyURLStreamTask {
@hotpaw2
hotpaw2 / RecordAudio.swift
Last active October 21, 2024 23:22
Swift Audio Recording class. Reads buffers of input samples from the microphone using the iOS RemoteIO Audio Unit API
//
// RecordAudio.swift
//
// This is a Swift class (updated for Swift 5)
// that uses the iOS RemoteIO Audio Unit
// to record audio input samples,
// (should be instantiated as a singleton object.)
//
// Created by Ronald Nicholson on 10/21/16.
// Copyright © 2017,2019 HotPaw Productions. All rights reserved.